首页 > 试题广场 >

模数求和

[编程题]模数求和
  • 热度指数:8631 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现给定n个整数,并定义一个非负整数m,且令f(m) = (m%a1)+(m%a2)+...+(m%an)。
此处的X % Y的结果为X除以Y的余数。
现请你找出一个m,求出f(m)的最大值。


输入描述:
输入包含两行,第一行为一正整数n,(1<n<=3000)
第二行为n个整数a1,a2,...,an ,其中(2<=ai<=10^5)


输出描述:
输出仅包含一行,输出f(m)的最大值
示例1

输入

3
3 4 6

输出

10

说明

就样例而言,当m取11时可取得最大值。
import sys

if __name__ == "__main__":
    while True:
        a = sys.stdin.readline().strip()
        if not a :
            break
        b = sys.stdin.readline().strip().split()
        b = [int(i) for i in b]
        print(sum(b)-int(a))

发表于 2021-08-22 14:19:41 回复(0)